package unit5;

public class ExceptionDemo {
    // 生成0-100之间的随机数，如果生成的数是偶数，则抛出异常Exception
    public static void throwByRandom() throws  Exception {
        int num = (int)(Math.random() * 101);
        System.out.println("2.1. 生成的随机数是：" + num);
        if (num % 2 == 0) {
            System.out.println("2.2. 生成的随机数是偶数，准备抛出异常");
            throw new Exception("2.2. 生成的随机数是偶数，抛出异常");
        } else {
            System.out.println("2.2. 生成的随机数不是偶数，没有异常");
        }
    }

    // 调用throwByRandom方法，不处理异常，声明本方法也会抛出异常
    public static void callThrowByRandom() throws Exception {
        throwByRandom();
        System.out.println("2.3. 无异常发生，程序继续");
    }

    public static void main(String[] args) {
        System.out.println("1. 开始执行 main 方法");
        try {
            callThrowByRandom();
            System.out.println("3. 方法执行完毕，没有异常" );
        } catch (Exception e) {
            System.out.println("4. 捕获到异常：" + e.getMessage());
            e.printStackTrace();
        } finally {
            System.out.println("5. 无论是否发生异常，finally 块中的代码都会被执行");
        }
    }
}
